package com.example.qxfw.dzzh.controller;

import com.dmgis.entity.DmsLayer;
import com.example.qxfw.common.SysResult;
import com.example.qxfw.common.entity.yj.YjfxdzLayeryz;
import com.example.qxfw.common.entity.yj.YjfxdzYzdisppara;
import com.example.qxfw.common.entity.yj.YjfxdzYzpara;
import com.example.qxfw.common.util.DmgisUtils;
import com.example.qxfw.dzzh.service.YjfxdzLayeryzService;
import com.example.qxfw.dzzh.service.YjfxdzYzdispparaService;
import com.example.qxfw.dzzh.service.YjfxdzYzparaService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Api(tags = "地质灾害-地质分析")
@RestController
@CrossOrigin
@RequestMapping("/dzfx")
public class DzfxController {

    @Value("${dmgis.ip}")
    private String dmgisIp;

    @Value("${dmgis.port}")
    private String dmgisPort;

    @Value("${dmgis.serName}")
    private String dmgisSerName;

    @Autowired
    private YjfxdzLayeryzService yjfxdzLayeryzService;

    @Autowired
    private YjfxdzYzparaService yjfxdzYzparaService;

    @Autowired
    private YjfxdzYzdispparaService yjfxdzYzdispparaService;

    @ApiOperation("获取地质因子")
    @GetMapping("/getServiceName")
    public SysResult getServiceName(){
        List<DmsLayer> layers = DmgisUtils.getService(dmgisIp,dmgisPort,dmgisSerName);
        return SysResult.success(layers);
    }

    @ApiOperation("获取预警分析因子信息")
    @GetMapping("/getYjfxdzLayeryz")
    public SysResult getYjfxdzlayeryz(Integer factorIndex){
        List<YjfxdzLayeryz> yjfxdzLayeryzs = yjfxdzLayeryzService.listByFactorIndex(factorIndex);
        return SysResult.success(yjfxdzLayeryzs);
    }

    @ApiOperation("保存预警分析因子信息")
    @RequestMapping("/saveYjfxdzLayeryz")
    public SysResult saveYjfxdzLayeryz(@RequestBody YjfxdzLayeryz yjfxdzLayeryz){
        YjfxdzLayeryz save = yjfxdzLayeryzService.save(yjfxdzLayeryz);
        return SysResult.success(save);
    }

    @ApiOperation("删除预警分析因子信息")
    @RequestMapping("/deleteYjfxdzLayeryz")
    public SysResult deleteYjfxdzLayeryz(Integer factorIndex){
        Integer rows = yjfxdzLayeryzService.delete(factorIndex);
        return SysResult.success(rows);
    }

    @ApiOperation("修改影响值")
    @RequestMapping("/updateValue")
    public SysResult updateValue( Integer factorIndex, Double value){
        Integer rows = yjfxdzLayeryzService.updateValue(factorIndex, value);
        return SysResult.success(rows);
    }

    @ApiOperation("获取地质因子属性分析信息")
    @RequestMapping("/getYjfxdzYzpara")
    public SysResult getYjfxdzYzpara(Integer factorIndex){
        List<YjfxdzYzpara> yjfxdzYzparas = yjfxdzYzparaService.listbyFactorIndex(factorIndex);
        return SysResult.success(yjfxdzYzparas);
    }

    @ApiOperation("保存地质因子属性分析信息")
    @RequestMapping("/saveYjfxdzYzpara")
    public SysResult saveYjfxdzYzpara(@RequestBody YjfxdzYzpara yjfxdzYzpara){
        YjfxdzYzpara save = yjfxdzYzparaService.save(yjfxdzYzpara);
        return SysResult.success(save);
    }

    @ApiOperation("更新地质因子属性分析信息")
    @RequestMapping("/updateYjfxdzYzpara")
    public SysResult updateYjfxdzYzpara(@RequestBody YjfxdzYzpara yjfxdzYzpara){
        Integer rows = yjfxdzYzparaService.update(yjfxdzYzpara);
        return SysResult.success(rows);
    }

    @ApiOperation("删除地质因子属性分析信息")
    @RequestMapping("/deleteYjfxdzYzpara")
    public SysResult deleteYjfxdzYzpara(String id){
        Integer rows = yjfxdzYzparaService.delete(id);
        return SysResult.success(rows);
    }

    @ApiOperation("获取短期预警因子显示参数")
    @RequestMapping("/getYjfxdzYzdisppara")
    public SysResult getYjfxdzYzdisppara(String index){
        List<YjfxdzYzdisppara> yjfxdzYzdispparas = yjfxdzYzdispparaService.listByIndex(index);
        return SysResult.success(yjfxdzYzdispparas);
    }

    @ApiOperation("添加短期预警因子显示参数")
    @RequestMapping("/saveYjfxdzYzdisppara")
    public SysResult saveYjfxdzYzdisppara(@RequestBody YjfxdzYzdisppara yjfxdzYzdisppara){
        YjfxdzYzdisppara save = yjfxdzYzdispparaService.save(yjfxdzYzdisppara);
        return SysResult.success(save);
    }

    @ApiOperation("修改短期预警因子显示参数")
    @RequestMapping("/updateYjfxdzYzdissppara")
    public SysResult updateYjfxdzyzdissppara(@RequestBody YjfxdzYzdisppara yjfxdzYzdisppara){
        YjfxdzYzdisppara yjfxdzYzdisppara1 = yjfxdzYzdispparaService.updateById(yjfxdzYzdisppara);
        return SysResult.success(yjfxdzYzdisppara1);
    }

    @ApiOperation("删除短期预警因子显示参数")
    @RequestMapping("/deleteYjfxdzYzdissppara")
    public SysResult deleteYjfxdzYzdisspara(String id){
        Integer rows = yjfxdzYzdispparaService.deleteById(id);
        return SysResult.success(rows);
    }
}
